package cn.edu.hbpu.service;

import cn.edu.hbpu.common.R;
import cn.edu.hbpu.dto.UserDto;
import cn.edu.hbpu.entity.sys.SysUser;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.io.IOException;
import java.util.Map;

/**
 * @author lcy
 * @date 2022/8/4 8:17
 * @description
 */
public interface SysUserService {
    /**
     * 登录
     *
     * @param user
     * @return
     */
    R<Map<Object, Object>> login(UserDto user);

    /**
     * 生成验证码的Base64
     *
     * @return
     * @throws IOException
     */
    R<Map<Object, Object>> generateCode() throws IOException;

    /**
     * 退出登录
     *
     * @return
     */
    R<Map<Object, Object>> logout();

    /**
     * 根据用户id获取用户信息
     *
     * @return
     */
    R<SysUser> getUserInfo();


    /**
     * 修改系统用户密码
     *
     * @param sysUserId 系统用户id
     * @param newPwd    新密码
     * @return
     */
    R<String> updatePwd(String sysUserId, String newPwd);

    /**
     * 修改账号状态
     *
     * @param sysUserId 系统用户id
     * @param status    1正常 0禁用
     * @return
     */
    R<String> changeStatus(String sysUserId, int status);

    /**
     * 删除系统用户
     *
     * @param sysUserId 系统用户id
     * @return
     */
    R<String> deleteUser(String sysUserId);

    /**
     * 分页查询了管理员列表。实现了搜索功能
     * @param searchField
     * @param searchText
     * @param startDateTime
     * @param endDateTime
     * @param page
     * @param pageSize
     * @return
     */
    R<Page<SysUser>> pagingQuery(String searchField, String searchText, String startDateTime, String endDateTime, int page, int pageSize);
}
